package service.file;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import entity.file.FileName;
import entity.file.MyFile;

public interface IFileService {

	/**
	 * 根据文件的Md5值,文件大小，文件类型查询该文件是否已经存在
	 * 
	 * @param md5Value
	 * @return
	 * @throws Exception
	 */
	public MyFile getFileByMd5Value(String md5Value, double size, String type) throws Exception;

	/**
	 * 保存单个文件
	 * 
	 * @param file
	 * @return
	 * @throws Exception
	 */
	public MyFile saveFile(MultipartFile file,String path,String md5Value) throws Exception;

	/**
	 * 保存多个文件
	 * 
	 * @param myFiles
	 * @return
	 * @throws Exception
	 */
	public List<MyFile> saveMyFiles(List<MyFile> myFiles) throws Exception;

	/**
	 * 根据ID查询MyFile
	 * 
	 * @param myFileId
	 * @return
	 * @throws Exception
	 */
	public MyFile getMyFileById(String id) throws Exception;

	/**
	 * 使用某个文件（具体业务关联该文件）
	 * 
	 * @param myFile
	 * @throws Exception
	 */
	public void useFileName(FileName fileName) throws Exception;

	/**
	 * 不使用某个文件（具体业务解除和该文件的关联）
	 * 
	 * @param myFile
	 * @throws Exception
	 */
	public void unUseFileName(FileName fileName) throws Exception;
	
	/**
	 * 根据ID获取FileName
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public FileName getFileNameById(String id)throws Exception;

}
